import logging
from sqlalchemy.orm import Session

from app.db.session import SessionLocal
from app.db.init_db import init_db

logger = logging.getLogger(__name__)


async def startup_event():
    """
    应用启动时执行的初始化任务
    """
    logger.info("执行应用启动初始化...")
    #  初始化数据库
    await init_db_tasks()
    logger.info("应用启动初始化完成")

async def init_db_tasks():
    """
    初始化数据库
    """
    # 初始化数据库 - 在启动事件中执行而不是模块级别
    logger.info("系统启动，初始化数据库...")
    try:
        init_db()
        logger.info("数据库初始化完成!")
    except Exception as e:
        logger.error(f"数据库初始化失败: {str(e)}", exc_info=True)

async def shutdown_event():
    """
    应用关闭时执行的清理任务
    """
    logger.info("执行应用关闭清理...")
    # 这里可以添加清理逻辑，如清理Redis中的临时数据等
    logger.info("应用关闭清理完成")
